package com.example.micro_property_springboot.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 资产报废表
 */
@Data
@TableName("asset_scrap")
public class AssetScrap {

    //报废计划id
    @TableId(type = IdType.AUTO)
    @NotNull(message = "报废计划id不能为空")
    private Long id; // 报废计划ID

    //报废单号
    @TableField("scrap_no")
    @NotNull(message = "报废单号不能为空")
    private String scrapNo; // 报废单号

    //资产id
    @TableField("asset_id")
    @NotNull(message = "资产id不能为空")
    private Long assetId; // 资产ID

    //申请人id
    @TableField("applicant_id")
    @NotNull(message = "申请人id不能为空")
    private Long applicantId; // 申请人ID


    //报废原因
    @TableField("reason")
    @NotNull(message = "报废原因不能为空")
    private String reason; // 报废原因

    //残值
    @TableField("residual_value")
    @NotNull(message = "残值不能为空")
    private BigDecimal residualValue; // 残值

    //审批人id
    @TableField("approver_id")
    @NotNull(message = "审批人id不能为空")
    private Long approverId; // 审批人ID

     //审批状态
    @TableField("approve_status")
    @NotNull(message = "审批状态不能为空")
    private Integer approveStatus; // 审批状态

    //审批时间
    @TableField("approve_time")
    @NotNull(message = "审批时间不能为空")
    private LocalDateTime approveTime; // 审批时间

    //审批备注
    @TableField("approve_remark")
    @NotNull(message = "审批备注不能为空")
    private String approveRemark; // 审批备注

    //报废时间
    @TableField("scrap_time")
    @NotNull(message = "报废时间不能为空")
    private LocalDateTime scrapTime; // 报废时间

    //处理方式
    @TableField("scrap_method")
    @NotNull(message = "处理方式不能为空")
    private String scrapMethod; // 处理方式

    //处理人id
    @TableField("scraper_id")
    @NotNull(message = "处理人id不能为空")
    private Long scraperId; // 处理人ID

    //创建时间
    @TableField("create_time")
    @NotNull(message = "创建时间不能为空")
    private LocalDateTime createTime; // 创建时间

    //更新时间
    @TableField("update_time")
    @NotNull(message = "更新时间不能为空")
    private LocalDateTime updateTime; // 更新时间

}
